﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
using DevComponents.DotNetBar;

namespace QLST
{
    
    public partial class frmBackup_Restore : Form
    {
        ConnectDB conn = new ConnectDB();
        public frmBackup_Restore()
        {
            InitializeComponent();
        }

        private void frmBackup_Restore_Load(object sender, EventArgs e)
        {
            if (rdPhucHoi.Checked == true)
            {
                GroupPanel1.Enabled = true;
            }
            else 
            {
                GroupPanel3.Enabled = true;
            }
        }

        private void btnChonLuuFileBackup_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog folder = new FolderBrowserDialog();

            if (folder.ShowDialog() == DialogResult.OK)
            {
                txtLuuFileBackup.Text = folder.SelectedPath;
            }

        }

        private void btnSaoLuu_Click(object sender, EventArgs e)
        {
            if (txtTenFileBackup.Text == "")
            {
                MessageBoxEx.Show("Bạn phải nhập tên file muốn sao lưu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtTenFileBackup.Focus();
                return;
            }
            if(txtLuuFileBackup  .Text =="")
            {
                MessageBoxEx.Show("Bạn phải nơi lưu file!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtLuuFileBackup.Focus();
                return;
            }
            string duongdan=txtLuuFileBackup .Text +"\\"+txtTenFileBackup .Text +".bak";
            try 
            {
                conn.excute("BACKUP DATABASE QLNhaTro TO DISK = '" + duongdan + "' WITH FORMAT");
                MessageBoxEx.Show("Sao lưu dữ liệu thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtLuuFileBackup.Text = "";
                txtTenFileBackup.Text = "";
            }
            catch (System .Exception )
            {
                MessageBoxEx.Show("Quá trìn sao lưu bị lỗi! Vui lòng thử lại sau.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnChonFileBackup_Click(object sender, EventArgs e)
        {
            OpenFileDialog of = new OpenFileDialog();
            if (of.ShowDialog() == DialogResult.OK)
                txtChonFileBackup.Text = of.FileName;
        }

        private void btnPhucHoi_Click(object sender, EventArgs e)
        {
            if(txtChonFileBackup .Text =="")
            {
                MessageBoxEx.Show("Bạn phải chọn file dữ liệu muốn phục hồi!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtChonFileBackup.Focus();
                return;
            }
            try
            {
                conn.excute("RESTORE HEADERONLY FROM  DISK = N'" +txtChonFileBackup .Text + "'");
                MessageBoxEx.Show("Phục hồi dữ liệu thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtChonFileBackup.Text = "";
            }
            catch (System.Exception)
            {
                MessageBoxEx.Show("Lỗi trong quá trình phục hồi dữ liệu! Xin thử lại sau.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnBiSaoLuu_Click(object sender, EventArgs e)
        {
            txtLuuFileBackup.Text = "";
            txtTenFileBackup.Text = "";
        }

        private void btnBoPhucHoi_Click(object sender, EventArgs e)
        {
            txtChonFileBackup.Text = "";
        }

        private void rdSaoLuu_CheckedChanged(object sender, EventArgs e)
        {
            if (rdSaoLuu.Checked == true)
            {
                GroupPanel3.Enabled = true;
                GroupPanel1.Enabled = false;
            }
            else
            {
                GroupPanel3.Enabled = false;
                GroupPanel1.Enabled = true;
            }
        }

        private void rdPhucHoi_CheckedChanged(object sender, EventArgs e)
        {
            if (rdPhucHoi .Checked ==false)
            {
                GroupPanel3.Enabled = true;
                GroupPanel1.Enabled = false;
            }
            else
            {
                GroupPanel3.Enabled = false;
                GroupPanel1.Enabled = true;
            }
        }



    }
}
